1. Field of the Invention
The present invention relates to a server apparatus, a screen sharing method and a computer readable medium for sharing an image displayed on a screen with a client terminal.
2. Related Art
There is a “screen sharing system” which packetizes a desktop image of a server apparatus and delivers them from the server apparatus to a client terminal connected through a network in real time. According to this system, it is possible for both users remote from each other to share and refer to a desktop image on one side and realize an efficient cooperative work environment between both points via a network.
When building a screen sharing system, there are methods like a method whereby drawing contents of a whole desktop area of a server apparatus are packetized at predetermined time intervals and delivered to a client terminal and a method whereby every time a drawing area in a desktop area is updated, only the updated part is packetized together with drawing coordinates thereof and delivered. According to the latter method of delivering a difference, only data of necessary parts is generated according to a change of drawing contents, and therefore there are such advantages that it is possible not only to use network bands more efficiently than the former method but also to increase the number of drawing frames per unit time. Therefore, in currently provided screen sharing systems, services are often provided in a configuration whereby only difference data is delivered.
In a screen sharing system, some of image packets transmitted from a server apparatus to a client terminal may be lost, and therefore it is essential to perform control so as to minimize the influence in such a case. For this reason, a communication control protocol having a function of retransmitting lost packets represented by TCP (Transmission Control Protocol) is generally used. As for such a retransmission function, the server apparatus transmits an image packet with a sequence number indicating a temporal sequence assigned thereto, while the client terminal monitors the sequence number included in the received packet and detects that a loss has occurred in the reception of the image packet. Upon detecting the loss of the packet, the client terminal transmits a retransmission requesting packet including the corresponding sequence number to the server apparatus and the server apparatus which has received this packet searches a list of image packets already transmitted in the past stored in the own storage area, selects and extracts a packet corresponding to the sequence number and retransmits this packet to the client terminal.
However, this method involves a problem that there is possibility that the amount of data of the retransmission packet transmitted to the client terminal from the server apparatus may unnecessarily grow. That is, when an area which corresponds to the retransmission request from the client terminal is overwritten and updated with another image through an immediately following update, even if a retransmission packet is sent, the drawing is overwritten immediately with a subsequent image at the client terminal. Such a situation is estimated to possibly occur in a case where updates are frequently performed in a specific area, for example, when video contents are reproduced on the desktop.
Furthermore, the server apparatus needs to store a history of transmission image packets in the past for a long time to generate a retransmission packet. This may drastically tighten a storage area necessary for storage of the history.
Incidentally, JP-A 2005-20590 (Kokai) points out, as a problem, that the above described screen sharing system compromises realtimeness and proposes, as a countermeasure for this, that when the client terminal does not receive a packet that should be received following the packet received last time even after a lapse of an allowable time interval, the client terminal should send a retransmission request to the server apparatus.